package Screens;

import java.awt.Graphics2D;
import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
import java.awt.image.BufferedImage;
import java.util.ArrayList;

import Map.TileMap;
import Paineis.PainelDeGerenciamento;
import Towers.Tower;
import Utils.Utilidades;

public class TelaJogo extends Screen {
	
	
	public ArrayList<Tower>listasDeTorres = new ArrayList<Tower>();
	public PainelDeGerenciamento PainelLateral;
	
	//TODO
			int contador=0;

	public TelaJogo(int X, int Y, int Width, int Height, String fileNome) {
		super(X, Y, Width, Height, fileNome);
		// TODO Auto-generated constructor stub
		MAPA = new TileMap[1];
		BufferedImage img = Utils.Utilidades.LoadImage("/Bridge.png");
		MAPA[0] = new TileMap(img, 45, 30);
		MAPA[0].AbreMapa("/Fase1.map");
		
		listasDeTorres.add(new Tower(740, 40, 32, 32,"/torres/torre_madeira_mapa.png","/torres/torre_madeira.png" ));
		listasDeTorres.add(new Tower(740, 100, 32, 32, "/torres/torre_ferro_mapa.png", "/torres/torre_ferro.png"));
		PainelLateral = new PainelDeGerenciamento(720, 0, 180, 500, "/painel.png");
	}

	@Override
	public void Draw(Graphics2D dbg) {
		// TODO Auto-generated method stub
		MAPA[0].DesenhaSe(dbg);
		PainelLateral.Draw(dbg);
		for (int i = 0; i < listasDeTorres.size(); i++) {
			listasDeTorres.get(i).Draw(dbg);
		}	
	}

	@Override
	public void Update(long diffTime) {
		// TODO Auto-generated method stub

	}

	@Override
	public void tratadorTecladoPress(KeyEvent e) {
		// TODO Auto-generated method stub
		int keyCode = e.getKeyCode();
		if(keyCode == KeyEvent.VK_ENTER){
			listasDeTorres.get(0).constroiTorre(contador);
			contador++;
			
		}
	}

	@Override
	public void tratadorTecladoReleased(KeyEvent e) {
		// TODO Auto-generated method stub

	}

	@Override
	public void mouseMoved(MouseEvent e) {
		// TODO Auto-generated method stub
		for (int i = 0; i < listasDeTorres.size(); i++) {
			listasDeTorres.get(i).mouseMove(e);
		}
	}

	@Override
	public void mouseDragged(MouseEvent e) {
		// TODO Auto-generated method stub
		for (int i = 0; i < listasDeTorres.size(); i++) {
			listasDeTorres.get(i).mouseMove(e);
		}
	}

	@Override
	public void mouseReleased(MouseEvent e) {
		// TODO Auto-generated method stub

	}

	@Override
	public void mousePressed(MouseEvent e) {
		// TODO Auto-generated method stub

	}

	@Override
	public void mouseExited(MouseEvent e) {
		// TODO Auto-generated method stub

	}

	@Override
	public void mouseEntered(MouseEvent e) {
		// TODO Auto-generated method stub

	}

	@Override
	public void mouseClicked(MouseEvent e) {
		// TODO Auto-generated method stub
		for (int i = 0; i < listasDeTorres.size(); i++) {
			listasDeTorres.get(i).mouseClik(e);
			if(!listasDeTorres.get(i).fixada && listasDeTorres.get(i).selecionada ){
				PainelLateral.diminuiMoney(20);
			}
		}
	}

	@Override
	public void setaOpcao(int opcao) {
		// TODO Auto-generated method stub
		
	}

}
